#include <iostream>
#include <string.h>
using namespace std;

//
//class Solution {
//public:
//    void Continoe(string&tmp,string num ,int &end,int&carry)
//    {
//        int tmpN;
//        tmpN=(num[end]-'0')+carry;
//        carry=tmpN/10;
//        tmpN%=10;
//        tmp+=tmpN+'0';
//        end--;
//    }
//    string addStrings(string num1, string num2)
//    {
//        int end1=num1.size()-1;
//        int end2=num2.size()-1;
//
//        int carry=0;
//        string tmp;
//        int tmpN;
//        while(end1>=0||end2>=0)
//        {
//            if(end1>-1&&end2>-1)
//            {
//                tmpN =(num1[end1]-'0')+(num2[end2]-'0')+carry;
//                carry=tmpN/10;
//                tmpN%=10;
//                tmp+=tmpN+'0';
//            }
//            else
//            {
//                break;
//            }
//            end1--;
//            end2--;
//
//        }
//        while(end1>=0||end2>=0)
//        {
//            if(end1>=0)
//            {
//                Continoe(tmp,num1,end1,carry);
//            }
//            if(end2>=0)
//            {
//                Continoe(tmp,num2,end2,carry);
//            }
//
//        }
//        if(carry)
//        {
//            tmp.push_back('1');
//        }
//        reverse(tmp.begin(),tmp.end());
//        return tmp;
//    }
//};


class Solution {
public:
    string addStrings(string num1, string num2)
    {
        int end1=num1.size()-1,end2=num2.size()-1;
         int carry=0;
        string tmp;
        while(end1>=0||end2>=0)
        {
            int value1=0,value2=0;

            if(end1>=0)
                value1=num1[end1--]-'0';

            if(end2>=0)
                value2=num2[end2--]-'0';


            int c=(value1+value2+carry)%10;
            tmp+=c+'0';
            carry=(value1+value2+carry)/10;

        }
        if(carry)
        {
            tmp+='1';
        }
        reverse(tmp.begin(),tmp.end());
        return tmp;

    }
};

int main()
{
    Solution d1;

    for(auto c:d1.addStrings(    string ("9"),    string ("99")))
    {
        cout<<c;
    }
    return 0;
}